#ifndef _CORE_H
#define _CORE_H

#include "SFML\Graphics.hpp"
#include "SFML\Audio.hpp"
#include <memory>

class InputManager;
class RenderManager;
class StateManager;
class Core
{
public:
	Core(void);
	~Core(void);

	bool initialize();
	void run();
	void shutdown();

private:
	std::shared_ptr<sf::RenderWindow> _window;
	std::shared_ptr<sf::View> _view;
	std::shared_ptr<InputManager> _inputManager;
	std::unique_ptr<StateManager> _stateManager;
	std::unique_ptr<RenderManager> _renderManager;
};

#endif // _CORE_H

